package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.JxExamRecord;
import org.apache.ibatis.annotations.Param;

/**
 * 学员考试记录Mapper接口
 * 
 * @author ruoyi
 * @date 2025-01-27
 */
public interface JxExamRecordMapper 
{
    /**
     * 查询学员考试记录
     * 
     * @param examId 学员考试记录主键
     * @return 学员考试记录
     */
    public JxExamRecord selectJxExamRecordByExamId(Long examId);

    /**
     * 查询学员考试记录列表
     * 
     * @param jxExamRecord 学员考试记录
     * @return 学员考试记录集合
     */
    public List<JxExamRecord> selectJxExamRecordList(JxExamRecord jxExamRecord);

    /**
     * 新增学员考试记录
     * 
     * @param jxExamRecord 学员考试记录
     * @return 结果
     */
    public int insertJxExamRecord(JxExamRecord jxExamRecord);

    /**
     * 修改学员考试记录
     * 
     * @param jxExamRecord 学员考试记录
     * @return 结果
     */
    public int updateJxExamRecord(JxExamRecord jxExamRecord);

    /**
     * 删除学员考试记录
     * 
     * @param examId 学员考试记录主键
     * @return 结果
     */
    public int deleteJxExamRecordByExamId(Long examId);

    /**
     * 批量删除学员考试记录
     * 
     * @param examIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteJxExamRecordByExamIds(Long[] examIds);

    /**
     * 查询学员某科目的最大考试次数
     * 
     * @param studentId 学员ID
     * @param subjectId 科目ID
     * @return 最大考试次数
     */
    public Integer selectMaxAttemptNo(@Param("studentId") Long studentId, @Param("subjectId") Long subjectId);

    /**
     * 查询学员某科目的考试记录
     * 
     * @param studentId 学员ID
     * @param subjectId 科目ID
     * @return 考试记录列表
     */
    public List<JxExamRecord> selectJxExamRecordByStudentAndSubject(@Param("studentId") Long studentId, @Param("subjectId") Long subjectId);

    /**
     * 查询学员所有科目的考试记录
     * 
     * @param studentId 学员ID
     * @return 考试记录列表
     */
    public List<JxExamRecord> selectJxExamRecordByStudent(@Param("studentId") Long studentId);
}
